From: Florian Müllner Date: Tue, 6 Oct 2015 23:21:02 +0000 (+0200) Subject: st-button: Don't rely on hover to accept clicks X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~1149 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=464d5d8a13e41c4495301071de0d04f9fde726f5;p=gnome-shell.git st-button: Don't rely on hover to accept clicks Since commit 4f1f226828 we only consider buttons clicked when the release event had a corresponding press event. However as we use the hover state to check whether a release event actually occurred on the button, we dismiss any clicks in cases where we missed the enter event - most likely due to some other actor holding a grab. Instead, check whether the button contains the event's source, which should be less error-prone. https://bugzilla.gnome.org/show_bug.cgi?id=748919 --- diff --git a/src/st/st-button.c b/src/st/st-button.c index f47ce2132..78a931f31 100644 --- a/src/st/st-button.c +++ b/src/st/st-button.c @@ -211,7 +211,7 @@ st_button_button_release (ClutterActor *actor, { gboolean is_click; - is_click = button->priv->grabbed && st_widget_get_hover (ST_WIDGET (button)); + is_click = button->priv->grabbed && clutter_actor_contains (actor, event->source); st_button_release (button, device, mask, is_click ? event->button : 0, NULL); button->priv->grabbed &= ~mask;